#include "amentity.h"

AMEntity::AMEntity() {
    m_MeshData = 0;
}

AMEntity::AMEntity(MeshData * meshData) {
    setMeshData(meshData);
}

void AMEntity::setMeshData(MeshData * meshData) {
    m_MeshData = meshData;
    if(m_MeshData->vpf == 4) {
        m_RenderMode = GL_QUADS;
    } else {
        m_RenderMode = GL_TRIANGLES;
    }
}

void AMEntity::renderEnity() {
    if(m_MeshData == 0) return;
    glColor3f(1.0f, 1.0f, 1.0f);
    glBegin(m_RenderMode);
    int vi, ni;
    for(int i = 0; i < m_MeshData->vind_count; i++) {
        vi = m_MeshData->vinds[i]*3;
        ni = m_MeshData->ninds[i]*3;
        glNormal3f(m_MeshData->norms[ni],
                   m_MeshData->norms[ni + 1],
                   m_MeshData->norms[ni + 2]);
        glVertex3f(m_MeshData->verts[vi],
                   m_MeshData->verts[vi + 1],
                   m_MeshData->verts[vi + 2]);
    }
    glEnd();
}
